             package com.java.diagnostics.visualizer.recommender.memory;
             
             import com.java.diagnostics.visualizer.data.AggregateData;
             import com.java.diagnostics.visualizer.data.DataPoint;
             import com.java.diagnostics.visualizer.data.TupleData;
             import com.java.diagnostics.visualizer.recommender.Recommendation;
             import com.java.diagnostics.visualizer.recommender.RecommendationBase;
             import com.java.diagnostics.visualizer.recommender.util.Messages;
             
             public class LookForExcessiveGC
               extends RecommendationBase
               implements Recommendation
             {
               private static final String EXCESSIVE = "excessive gc activity detected";
               
               public void recommend(AggregateData data)
               {
                 TupleData freeHeap = data
                   .getTupleData("VGCLabels.free.flat.heap");
                 if ((freeHeap != null) && (!freeHeap.isEmpty()))
                 {
                   DataPoint[] dataPoints = freeHeap.getDataPoints();
                   for (int j = 0; j < dataPoints.length; j++)
                   {
                     if (dataPoints[j].getComment().toLowerCase().contains("excessive gc activity detected")) {
                       addProblem(data, 
                         Messages.getString("excessive.gc.detected"));
                       break;
                     }
                   }
                 }
               }
             }


